package com.carbon.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.carbon.domain.system.vo.SysDictModelVo;
import com.carbon.system.entity.SysDict;
import com.carbon.common.service.BaseService;
import com.carbon.system.entity.SysDictItem;
import com.carbon.system.param.SysDictAddParam;
import com.carbon.system.param.SysDictItemAddParam;
import com.carbon.system.param.SysDictItemQueryParam;
import com.carbon.system.param.SysDictQueryParam;
import com.carbon.system.vo.SysDictItemQueryVo;
import com.carbon.system.vo.SysDictQueryVo;
import com.carbon.common.api.Paging;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 系统字典  服务类
 * </p>
 *
 * @author Li Jun
 * @since 2021-08-16
 */
public interface SysDictService extends BaseService<SysDict> {
    /**
     * 获取所有字典
     * @return list
     */
    List<SysDictModelVo> getAllDict();

    IPage<SysDict> search(Page<SysDict> page, SysDictQueryParam param);

    boolean updateByIdB(SysDict sysDictQueryVo);

    boolean removeItemById(Long id);

    Boolean saveB(SysDict sysDict);

    IPage<SysDictItem> searchItem(Page<SysDictItem> page, SysDictItemQueryParam param);

    Boolean saveItem(SysDictItem param);

    Boolean updateItemById(SysDictItem sysDictItem);

    Boolean removeItemByIdB(Long id);

    Integer searchItemforDelete(String dictCode);
}
